Package by Component
Package by Component
とあるディレクトリ構造
『Clean Architecture』.icon 34章の流れ
PBLにしていると、
Serviceがpublicになっている
Repositoryもpublicになっている
だから、Controllerを作る人が、(Serviceをすっ飛ばして)Repositoryを使用できてしまう
だから、ComponentによるPackagingにして、
Serviceのみpublicにして、
Repositoryなどは非公開にする
そうすることで、Controllerの利用者はServiceを使うしかなくなる
なぜControllerは含めないか?
p.290~に書いている
外部からこのPackageにアクセスしたい時に、Controllerを経由するしかなく、
それが渋いケースがありうる(ありそう)
参考
『Clean Architecture』 第34章
https://blog.ttulka.com/package-by-component-with-clean-modules-in-java
https://learning-notes.mistermicheels.com/architecture-design/reference-architectures/package-by-feature-or-component/